// 后台脚本 - 处理服务启动和页面打开
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.action === 'startServer') {
    console.log('收到启动服务请求');
    
    // 尝试启动服务
    startServer()
      .then(result => {
        sendResponse({ success: true, message: result });
      })
      .catch(error => {
        sendResponse({ success: false, message: error.message });
      });
    
    return true; // 保持消息通道开放
  }
  
  if (request.action === 'openReviewPage') {
    console.log('收到打开复习页面请求');
    
    // 打开复习页面
    chrome.tabs.create({ url: chrome.runtime.getURL('review.html') })
      .then(tab => {
        sendResponse({ success: true, tabId: tab.id });
      })
      .catch(error => {
        sendResponse({ success: false, message: error.message });
      });
    
    return true; // 保持消息通道开放
  }
  
  if (request.action === 'openStartPage') {
    console.log('收到打开启动页面请求');
    
    // 打开启动页面
    chrome.tabs.create({ url: chrome.runtime.getURL('start-server.html') })
      .then(tab => {
        sendResponse({ success: true, tabId: tab.id });
      })
      .catch(error => {
        sendResponse({ success: false, message: error.message });
      });
    
    return true; // 保持消息通道开放
  }
});

async function startServer() {
  try {
    // 尝试通过 Native Messaging 启动服务
    // 但由于安全限制，我们使用另一种方法
    
    // 创建一个隐藏的 iframe 来触发服务启动
    const iframe = document.createElement('iframe');
    iframe.style.display = 'none';
    iframe.src = 'http://127.0.0.1:3000/api/start';
    document.body.appendChild(iframe);
    
    // 等待一段时间
    await new Promise(resolve => setTimeout(resolve, 2000));
    
    // 移除 iframe
    document.body.removeChild(iframe);
    
    return '服务启动命令已发送';
  } catch (error) {
    throw new Error('无法启动服务: ' + error.message);
  }
}

console.log('background.js loaded');
chrome.action.onClicked.addListener((tab) => {
  chrome.tabs.create({
    url: chrome.runtime.getURL('popup.html')
  });
}); 